🎖️GitЯра🎖️
src/helpers/NRF52Board.h 93b2db63de9009af047a2d0e1bcd97b4b0ba7106 (93b2db63) Text, 2.98 KB
Tff7b72#Tff7b72pragma once
Tff7b72#Tff7b72include T8b949e<Arduino.h>
Tff7b72#Tff7b72include T8b949e<MeshCore.h>
Tff7b72#Tff7b72if defined(NRF52_PLATFORM)
Tff7b72#Tff7b72ifdef NRF52_POWER_MANAGEMENT
T8b949e// Shutdown Reason Codes (stored in GPREGRET before SYSTEMOFF)
Tff7b72#Tff7b72define SHUTDOWN_REASON_NONE 0x00
Tff7b72#Tff7b72define SHUTDOWN_REASON_LOW_VOLTAGE 0x4C T8b949e// 'L' - Runtime low voltage threshold
Tff7b72#Tff7b72define SHUTDOWN_REASON_USER 0x55 T8b949e// 'U' - User requested powerOff()
Tff7b72#Tff7b72define SHUTDOWN_REASON_BOOT_PROTECT 0x42 T8b949e// 'B' - Boot voltage protection
T8b949e// Boards provide this struct with their hardware-specific settings and callbacks.
Tff7b72struct T56d364PowerMgtConfig Tb4b4b4{
T8b949e// LPCOMP wake configuration (for voltage recovery from SYSTEMOFF)
Tffa657uint8_t Te6edf3lpcomp_ain_channelTb4b4b4; T8b949e// AIN0-7 for voltage sensing pin
Tffa657uint8_t Te6edf3lpcomp_refselTb4b4b4; T8b949e// REFSEL value: 0-6=1/8..7/8, 7=ARef, 8-15=1/16..15/16
T8b949e// Boot protection voltage threshold (millivolts)
T8b949e// Set to 0 to disable boot protection
Tffa657uint16_t Te6edf3voltage_bootlockTb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72#Tff7b72endif
Te6edf3class Te6edf3NRF52Board Tff7b72: Te6edf3public Te6edf3meshTff7b72:Tff7b72:Te6edf3MainBoard Tb4b4b4{
Tff7b72#Tff7b72ifdef NRF52_POWER_MANAGEMENT
Tffa657void Td2a8ffinitPowerMgrTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif
Te6edf3protectedTff7b72:
Tffa657uint8_t Te6edf3startup_reasonTb4b4b4;
Tffa657char Tff7b72*Te6edf3ota_nameTb4b4b4;
Tff7b72#Tff7b72ifdef NRF52_POWER_MANAGEMENT
Tffa657uint32_t Te6edf3reset_reasonTb4b4b4; T8b949e// RESETREAS register value
Tffa657uint8_t Te6edf3shutdown_reasonTb4b4b4; T8b949e// GPREGRET value (why we entered last SYSTEMOFF)
Tffa657uint16_t Te6edf3boot_voltage_mvTb4b4b4; T8b949e// Battery voltage at boot (millivolts)
Tffa657bool Td2a8ffcheckBootVoltageTb4b4b4(Tff7b72const Te6edf3PowerMgtConfigTff7b72* Te6edf3configTb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffenterSystemOffTb4b4b4(Tffa657uint8_t Te6edf3reasonTb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffconfigureVoltageWakeTb4b4b4(Tffa657uint8_t Te6edf3ain_channelTb4b4b4, Tffa657uint8_t Te6edf3refselTb4b4b4)Tb4b4b4;
Te6edf3virtual Tffa657void Te6edf3initiateShutdownTb4b4b4(Tffa657uint8_t Te6edf3reasonTb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif
Te6edf3publicTff7b72:
Te6edf3NRF52BoardTb4b4b4(Tffa657char Tff7b72*Te6edf3otanameTb4b4b4) Tff7b72: Te6edf3ota_nameTb4b4b4(Te6edf3otanameTb4b4b4) Tb4b4b4{Tb4b4b4}
Te6edf3virtual Tffa657void Te6edf3beginTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3virtual Tffa657uint8_t Te6edf3getStartupReasonTb4b4b4(Tb4b4b4) Tff7b72const Te6edf3override Tb4b4b4{ Tff7b72return Te6edf3startup_reasonTb4b4b4; Tb4b4b4}
Te6edf3virtual Tffa657float Te6edf3getMCUTemperatureTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Te6edf3virtual Tffa657void Te6edf3rebootTb4b4b4(Tb4b4b4) Te6edf3override Tb4b4b4{ Te6edf3NVIC_SystemResetTb4b4b4(Tb4b4b4)Tb4b4b4; Tb4b4b4}
Te6edf3virtual Tffa657void Te6edf3shutdownPeripheralsTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3virtual Tffa657void Te6edf3powerOffTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Te6edf3virtual Tffa657bool Te6edf3getBootloaderVersionTb4b4b4(Tffa657charTff7b72* Te6edf3versionTb4b4b4, Tffa657size_t Te6edf3max_lenTb4b4b4) Te6edf3overrideTb4b4b4;
Te6edf3virtual Tffa657bool Te6edf3startOTAUpdateTb4b4b4(Tff7b72const Tffa657char Tff7b72*Te6edf3idTb4b4b4, Tffa657char Te6edf3replyTb4b4b4[Tb4b4b4]Tb4b4b4) Te6edf3overrideTb4b4b4;
Te6edf3virtual Tffa657void Te6edf3sleepTb4b4b4(Tffa657uint32_t Te6edf3secsTb4b4b4) Te6edf3overrideTb4b4b4;
Tffa657bool Td2a8ffisExternalPoweredTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Tff7b72#Tff7b72ifdef NRF52_POWER_MANAGEMENT
Tffa657uint16_t Td2a8ffgetBootVoltageTb4b4b4(Tb4b4b4) Te6edf3override Tb4b4b4{ Tff7b72return Te6edf3boot_voltage_mvTb4b4b4; Tb4b4b4}
Te6edf3virtual Tffa657uint32_t Te6edf3getResetReasonTb4b4b4(Tb4b4b4) Tff7b72const Te6edf3override Tb4b4b4{ Tff7b72return Te6edf3reset_reasonTb4b4b4; Tb4b4b4}
Tffa657uint8_t Te6edf3getShutdownReasonTb4b4b4(Tb4b4b4) Tff7b72const Te6edf3override Tb4b4b4{ Tff7b72return Te6edf3shutdown_reasonTb4b4b4; Tb4b4b4}
Tff7b72const Tffa657charTff7b72* Te6edf3getResetReasonStringTb4b4b4(Tffa657uint32_t Te6edf3reasonTb4b4b4) Te6edf3overrideTb4b4b4;
Tff7b72const Tffa657charTff7b72* Td2a8ffgetShutdownReasonStringTb4b4b4(Tffa657uint8_t Te6edf3reasonTb4b4b4) Te6edf3overrideTb4b4b4;
Tff7b72#Tff7b72endif
Tb4b4b4}Tb4b4b4;
T8b949e/*
* The NRF52 has an internal DC/DC regulator that allows increased efficiency
* compared to the LDO regulator. For being able to use it, the module/board
* needs to have the required inductors and capacitors populated. If the
* hardware requirements are met, this subclass can be used to enable the DC/DC
* regulator.
*/
Te6edf3class Te6edf3NRF52BoardDCDC Tff7b72: Te6edf3virtual Te6edf3public Te6edf3NRF52Board Tb4b4b4{
Te6edf3publicTff7b72:
Te6edf3NRF52BoardDCDCTb4b4b4(Tb4b4b4) Tb4b4b4{Tb4b4b4}
Te6edf3virtual Tffa657void Te6edf3beginTb4b4b4(Tb4b4b4) Te6edf3overrideTb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72#Tff7b72endif
Served by rngit 1.5.4 - Generated in 0.07s